package com.chaodev.base.service;

import com.github.pagehelper.PageInfo;
import com.chaodev.base.dto.AdviceDto;
import com.chaodev.base.dto.AdviceReplyDto;
import com.chaodev.base.model.Advice;
import com.chaodev.base.model.AdviceReply;
import org.springframework.dao.DataAccessException;

import java.util.List;

/**
 * vcbase
 *
 * @author 95634
 * @描述
 * @date 2023/5/18 9:03
 **/
public interface AdviceService {
    /**
     * 获取建言献策信息
     * @param id
     * @return TbAdvice
     */
    Advice findDataById(String id);

    /**
     * 保存建言献策信息
     * @param tbAdvice
     * @throws DataAccessException
     */
    void saveData(Advice tbAdvice) throws DataAccessException;

    /**
     * 新增建言献策信息
     * @param tbAdvice
     * @throws DataAccessException
     */
    void insertData(Advice tbAdvice) throws DataAccessException;

    /**
     * 更新建言献策信息
     * @param tbAdvice
     * @throws DataAccessException
     */
    void updateDataById(Advice tbAdvice) throws DataAccessException;

    /**
     * 删除建言献策信息
     * @param id
     * @throws DataAccessException
     */
    void deleteDataById(String id) throws DataAccessException;

    /**
     * 查询列表
     * @param tbAdvice
     * @return List
     */
    List<Advice> queryDataList(Advice tbAdvice);

    /**
     * 查询分页
     * @param start
     * @param limit
     * @param tbAdvice
     * @return PageInfo
     */
    PageInfo<Advice> queryPageList(AdviceDto dto);

    /**
     * 获取建言献策回复表信息
     * @param id
     * @return TbAdviceReply
     */
    AdviceReply findReplyDataById(String id);

    /**
     * 保存建言献策回复表信息
     * @param tbAdviceReply
     * @throws DataAccessException
     */
    void saveReplyData(AdviceReply tbAdviceReply) throws DataAccessException;

    /**
     * 新增建言献策回复表信息
     * @param tbAdviceReply
     * @throws DataAccessException
     */
    void insertReplyData(AdviceReply tbAdviceReply) throws DataAccessException;

    /**
     * 更新建言献策回复表信息
     * @param tbAdviceReply
     * @throws DataAccessException
     */
    void updateReplyDataById(AdviceReply tbAdviceReply) throws DataAccessException;

    /**
     * 删除建言献策回复表信息
     * @param id
     * @throws DataAccessException
     */
    void deleteReplyDataById(String id) throws DataAccessException;

    /**
     * 查询列表
     * @param tbAdviceReply
     * @return List
     */
    List<AdviceReply> queryReplyDataList(AdviceReply tbAdviceReply);

    /**
     * 查询分页
     * @param start
     * @param limit
     * @param tbAdviceReply
     * @return PageInfo
     */
    PageInfo<AdviceReply> queryReplyPageList(AdviceReplyDto tbAdviceReply);
}
